#pragma once
#include <string>
#include "SubjectManager.h"
#include "PredicateManager.h"

typedef sValueId sTripelId;
typedef struct s_Tripel{ string subject; string predicate; string object; } sTripel;
typedef struct s_TripelData { sSubjectId subjectId; sPredicateId predicateId; sSubjectId objectId; } sTripelData;

using namespace std;

class TripelManager :
	public BlockManager
{
public:
	static sTripelData getTripelData(sTripelId);
	static sTripel getTripel(sTripelId);
	static sTripelId findTripel(sTripel);
	static void removeTripel(sTripelId);
	static void removeTripel(sTripel);
	static void updateTripel(sTripel, sTripel);

	static void freeTripel(sTripelId);
	/*!
	* @wandelt 5Bytes in eine TripelId um
	*/
	static sTripelId bytesToTripelId(const byte*);
	static sTripelId newTripel(sTripel);
protected:
	TripelManager(){}
	~TripelManager(){}
};
